package 中等.数学;

/**
 * 给你一个数组 points ，其中 points[i] = [xi, yi] ，表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。
 * 同时给你一个数组 queries ，其中 queries[j] = [xj, yj, rj] ，表示一个圆心在 (xj, yj) 且半径为 rj 的圆。
 * 对于每一个查询 queries[j] ，计算在第 j 个圆 内 点的数目。如果一个点在圆的 边界上 ，我们同样认为它在圆 内 。
 * 请你返回一个数组 answer ，其中 answer[j]是第 j 个查询的答案。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/queries-on-number-of-points-inside-a-circle
 */
public class 统计一个圆中点的数目_1828 {

    public static void main(String[] args) {

    }

    /**
     * 模拟+勾股定理
     */
    public int[] countPoints(int[][] points, int[][] queries) {
        int[] ans = new int[queries.length];

        for (int i = 0; i < queries.length; i++) {
            int cnt = 0;
            for (int[] point : points) {
                int a = Math.abs(point[0] - queries[i][0]);
                int b = Math.abs(point[1] - queries[i][1]);
                int c = queries[i][2];
                if (a * a + b * b <= c * c) {
                    cnt++;
                }
            }
            ans[i] = cnt;
        }

        return ans;
    }

}
